{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 实验报告：基于神经网络的手写数字识别\n",
    "20221200556 杨鑫其\n",
    "## 实验目标\n",
    "- 使用PyTorch在MNIST数据集上构建并训练一个两层神经网络\n",
    "- 确保模型在测试集上的分类准确率达到95%以上\n",
    "- 可视化训练集和测试集上的损失曲线及准确率曲线\n",
    "- 可视化模型的预测结果、真实结果及对应数字图像\n",
    "## 数据集介绍\n",
    "MNIST数据集是PyTorch官方提供的经典手写数字识别数据集，包含60,000个训练样本和10,000个测试样本。每个样本为28×28像素的灰度图像，像素值范围为[0, 255]，表示手写数字0-9。数据通过`torchvision.datasets.MNIST`加载，并进行标准化处理以加速模型训练。\n",
    "## 环境说明\n",
    "实验依赖PyTorch库，可通过以下命令安装（建议使用国内镜像以加速下载）：\n",
    "```bash\n",
    "pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ torch torchvision\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:36:23.360968Z",
     "start_time": "2025-06-13T06:36:17.218042Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用设备: cpu\n"
     ]
    }
   ],
   "source": [
    "# 导入必要的库\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import torchvision\n",
    "import torchvision.transforms as transforms\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 设置随机种子以确保结果可重复\n",
    "torch.manual_seed(42)\n",
    "\n",
    "# 设置设备\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "print(f\"使用设备: {device}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据加载与预处理\n",
    "加载MNIST数据集，应用标准化变换，并创建数据加载器。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:36:23.499810Z",
     "start_time": "2025-06-13T06:36:23.362044Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集样本数: 60000\n",
      "测试集样本数: 10000\n"
     ]
    }
   ],
   "source": [
    "# 数据预处理\n",
    "transform = transforms.Compose([\n",
    "    transforms.ToTensor(),\n",
    "    transforms.Normalize((0.5,), (0.5,))  # 标准化到[-1, 1]\n",
    "])\n",
    "\n",
    "# 加载MNIST数据集\n",
    "train_dataset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)\n",
    "test_dataset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)\n",
    "\n",
    "# 创建数据加载器\n",
    "train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)\n",
    "test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=1000, shuffle=False)\n",
    "\n",
    "# 数据信息\n",
    "print(f\"训练集样本数: {len(train_dataset)}\")\n",
    "print(f\"测试集样本数: {len(test_dataset)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 神经网络模型定义\n",
    "定义一个两层全连接神经网络，包含输入层（784维）、隐藏层（128维）和输出层（10维）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:36:23.514814Z",
     "start_time": "2025-06-13T06:36:23.500811Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TwoLayerNN(\n",
      "  (fc1): Linear(in_features=784, out_features=128, bias=True)\n",
      "  (fc2): Linear(in_features=128, out_features=10, bias=True)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "class TwoLayerNN(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(TwoLayerNN, self).__init__()\n",
    "        self.fc1 = nn.Linear(28 * 28, 128)  # 输入层到隐藏层\n",
    "        self.fc2 = nn.Linear(128, 10)       # 隐藏层到输出层\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = x.view(-1, 28 * 28)  # 展平图像为向量\n",
    "        x = torch.relu(self.fc1(x))  # 隐藏层激活\n",
    "        x = self.fc2(x)  # 输出层\n",
    "        return x\n",
    "\n",
    "# 初始化模型、损失函数和优化器\n",
    "model = TwoLayerNN().to(device)\n",
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)\n",
    "\n",
    "# 打印模型结构\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型训练与评估\n",
    "训练模型20个epoch，记录训练和测试的损失及准确率，确保测试集准确率超过95%。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:41:07.380925Z",
     "start_time": "2025-06-13T06:36:23.517262Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch [1/20], 训练损失: 0.3794, 训练准确率: 88.58%, 测试损失: 0.2209, 测试准确率: 93.35%\n",
      "Epoch [2/20], 训练损失: 0.1814, 训练准确率: 94.65%, 测试损失: 0.1414, 测试准确率: 95.95%\n",
      "Epoch [3/20], 训练损失: 0.1314, 训练准确率: 96.11%, 测试损失: 0.1218, 测试准确率: 96.27%\n",
      "Epoch [4/20], 训练损失: 0.1071, 训练准确率: 96.81%, 测试损失: 0.1004, 测试准确率: 96.92%\n",
      "Epoch [5/20], 训练损失: 0.0889, 训练准确率: 97.30%, 测试损失: 0.0944, 测试准确率: 97.14%\n",
      "Epoch [6/20], 训练损失: 0.0787, 训练准确率: 97.66%, 测试损失: 0.1027, 测试准确率: 97.01%\n",
      "Epoch [7/20], 训练损失: 0.0697, 训练准确率: 97.82%, 测试损失: 0.1011, 测试准确率: 97.19%\n",
      "Epoch [8/20], 训练损失: 0.0627, 训练准确率: 98.06%, 测试损失: 0.0926, 测试准确率: 97.33%\n",
      "Epoch [9/20], 训练损失: 0.0574, 训练准确率: 98.16%, 测试损失: 0.0824, 测试准确率: 97.55%\n",
      "Epoch [10/20], 训练损失: 0.0514, 训练准确率: 98.40%, 测试损失: 0.1052, 测试准确率: 96.58%\n",
      "Epoch [11/20], 训练损失: 0.0482, 训练准确率: 98.46%, 测试损失: 0.0814, 测试准确率: 97.49%\n",
      "Epoch [12/20], 训练损失: 0.0419, 训练准确率: 98.65%, 测试损失: 0.0833, 测试准确率: 97.54%\n",
      "Epoch [13/20], 训练损失: 0.0365, 训练准确率: 98.83%, 测试损失: 0.0739, 测试准确率: 97.67%\n",
      "Epoch [14/20], 训练损失: 0.0332, 训练准确率: 98.96%, 测试损失: 0.0828, 测试准确率: 97.51%\n",
      "Epoch [15/20], 训练损失: 0.0313, 训练准确率: 99.02%, 测试损失: 0.0813, 测试准确率: 97.57%\n",
      "Epoch [16/20], 训练损失: 0.0293, 训练准确率: 99.08%, 测试损失: 0.0731, 测试准确率: 97.80%\n",
      "Epoch [17/20], 训练损失: 0.0258, 训练准确率: 99.22%, 测试损失: 0.0719, 测试准确率: 97.98%\n",
      "Epoch [18/20], 训练损失: 0.0226, 训练准确率: 99.34%, 测试损失: 0.0758, 测试准确率: 97.70%\n",
      "Epoch [19/20], 训练损失: 0.0214, 训练准确率: 99.36%, 测试损失: 0.0814, 测试准确率: 97.60%\n",
      "Epoch [20/20], 训练损失: 0.0188, 训练准确率: 99.41%, 测试损失: 0.0743, 测试准确率: 97.89%\n"
     ]
    }
   ],
   "source": [
    "# 训练模型\n",
    "num_epochs = 20\n",
    "train_losses = []\n",
    "train_accuracies = []\n",
    "test_losses = []\n",
    "test_accuracies = []\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    model.train()\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "\n",
    "    for images, labels in train_loader:\n",
    "        images, labels = images.to(device), labels.to(device)\n",
    "\n",
    "        optimizer.zero_grad()\n",
    "        outputs = model(images)\n",
    "        loss = criterion(outputs, labels)\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        running_loss += loss.item()\n",
    "        _, predicted = torch.max(outputs.data, 1)\n",
    "        total += labels.size(0)\n",
    "        correct += (predicted == labels).sum().item()\n",
    "\n",
    "    train_loss = running_loss / len(train_loader)\n",
    "    train_accuracy = 100 * correct / total\n",
    "    train_losses.append(train_loss)\n",
    "    train_accuracies.append(train_accuracy)\n",
    "\n",
    "    # 测试模型\n",
    "    model.eval()\n",
    "    running_loss = 0.0\n",
    "    correct = 0\n",
    "    total = 0\n",
    "\n",
    "    with torch.no_grad():\n",
    "        for images, labels in test_loader:\n",
    "            images, labels = images.to(device), labels.to(device)\n",
    "            outputs = model(images)\n",
    "            loss = criterion(outputs, labels)\n",
    "            running_loss += loss.item()\n",
    "            _, predicted = torch.max(outputs.data, 1)\n",
    "            total += labels.size(0)\n",
    "            correct += (predicted == labels).sum().item()\n",
    "\n",
    "    test_loss = running_loss / len(test_loader)\n",
    "    test_accuracy = 100 * correct / total\n",
    "    test_losses.append(test_loss)\n",
    "    test_accuracies.append(test_accuracy)\n",
    "\n",
    "    print(f\"Epoch [{epoch + 1}/{num_epochs}], 训练损失: {train_loss:.4f}, 训练准确率: {train_accuracy:.2f}%, \"\n",
    "          f\"测试损失: {test_loss:.4f}, 测试准确率: {test_accuracy:.2f}%\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 损失与准确率曲线可视化\n",
    "绘制训练和测试集的损失及准确率随epoch变化的曲线。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:41:07.740179Z",
     "start_time": "2025-06-13T06:41:07.381926Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36718 (\\N{CJK UNIFIED IDEOGRAPH-8F6E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27425 (\\N{CJK UNIFIED IDEOGRAPH-6B21}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 25439 (\\N{CJK UNIFIED IDEOGRAPH-635F}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22833 (\\N{CJK UNIFIED IDEOGRAPH-5931}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26354 (\\N{CJK UNIFIED IDEOGRAPH-66F2}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 35757 (\\N{CJK UNIFIED IDEOGRAPH-8BAD}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32451 (\\N{CJK UNIFIED IDEOGRAPH-7EC3}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 35797 (\\N{CJK UNIFIED IDEOGRAPH-8BD5}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20934 (\\N{CJK UNIFIED IDEOGRAPH-51C6}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30830 (\\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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HvezoFKperyAu2+r1ep+lT25XLA9++yzeOutt/DCCy8gMzOzx/1333035syZg5iYGADAqFGjsHfvXnzwwQfIzs4OdHV7GDJkCDZv3oyYmBhIkoTRo0fD7XbjoYcewsKFCyGXy71l+zom0dHRga52n3bv3o26ujr85Cc/6bPMk08+CbvdDp1OBwBYtGgRduzYgU8++QR33XVXoKraLyqVCs3NzT7bTvU+6OsYaTQaf1XxjFksFtx9992orKzEO++802fdli9fjo6ODkRGRgIAnnvuOUydOhVr167FrFmzAlllH1dffTV+/OMfQ6/XA/C8pysrK/Huu+9ixowZPmW7h2eG+jH56quvMHr06B49nyf7/PPPIUmS9/X38ssvY/LkySguLsb48eMDUVUaBNjWs60PhHBq79nWs60PhHO5rWeP+1lITExEU1MTXC6Xd5vJZIJare7RICQmJsJsNvtsM5vNITVM48knn8Sbb76JZ599FpdddlmvZWQymbch75aRkYG6urpAVLFf9Hq99/xCABgxYgQcDgdaWlp8yvV1TOLj4wNSz/7YsGEDCgsLezznJ1IoFN5GHID3F9VQOibdzvR9EOrHqL29Hb/85S9RWlqKt95665TnUCmVSm9DDngaxtTU1KAfJ0mSvA15t75eP3q9HiqVyueYuFwuNDc3h8wxATzvm0suueS05TQajc8XSaPRCL1eH/RjQqGFbb1HqLUr4dTWA+HV3rOtZ1sfCOdyW8/E/SyMHj0aCoXCZ7KN7du3Izs7GzKZ71Oam5uLnTt3QggBwDMkaseOHcjNzQ1klfv06quv4r333sP//u//nvLX3kceeQQLFy702bZ//35kZGT4u4r9smHDBkycONFnrcl9+/ZBr9f7nIcIeI7J9u3bvbdtNhtKSkpC5pgAwK5du077a+CcOXPw6quvem+73W4cOHAgZI7JiXJzc7F3717vMCzA857p6zk/+RjV1taitrY2JI6R2+3Gr3/9axw5cgT/+Mc/cN555/VZVgiB6dOn48MPP/Rus1qtOHz4cNCP00svvYS5c+f6bOvrPS2TyZCdne1zTIqKiqBQKPpcczjQhBDYvXv3ad837e3tOP/887Fp0ybvtrq6OjQ1NQX9mFBoYVvvwbbev8KpvWdbz7be3871tp6J+1nQaDS4+uqrsWjRIuzatQtr1qzBG2+8gVtvvRWA5xf57g+tmTNnorW1FU899RTKysrw1FNPwWaz4fLLLw9mCAA8kzYsWbIEv/rVr1BQUACTyeT9A3zjuPjii7Fq1Sp8/PHHOHz4MF599VVs3779lOdkBVJ+fj5UKhX+8Ic/oKKiAt988w2eeeYZ3H777ejs7ITJZPIO/bn22muxY8cOLFu2DKWlpVi4cCFSU1MxceLEIEdxXGlpaY8hQCfHcfHFF+Nvf/sb/vvf/6KiogJ//OMf0dbW1uuEI8E2YcIEJCcnY+HChSgtLcWyZcuwa9cuXHfddQA8w7BMJpP3vKOf/exn+OSTT7BixQrs378fCxYswLRp00JipuN//etf2Lx5M/70pz8hOjra+57pHh54YiySJGHatGl45ZVXsHnzZpSWlmLBggVISkoK+mRPP/7xj7F161YsX74cVVVVeOedd/Dxxx9j3rx5ADznunV/FgCeyWKWL1+ONWvWYNeuXVi0aBFuuOGGkBk+d/ToUVgsll6Hzp0Yi06nQ0FBARYvXoxdu3Zh7969+N3vfocpU6YgKysr0NWmEMa2nm19IIRTe8+2nm29v53zbX1wVqEb/KxWq1iwYIHIy8sTkydPFm+++ab3vszMTJ+1W4uLi8XVV18tsrOzxXXXXSf27t0bhBr3tHTpUpGZmdnrnxA94/jggw/EpZdeKsaNGyeuueYasWXLlmBVvVcHDx4Uc+fOFXl5eWLSpEnilVdeEW63W1RXV/dYB3LdunXi0ksvFTk5OeK2224L6Jqh/ZGdnS3Wr1/vs+3kONxut/i///s/MW3aNDFu3Djx85//XBw4cCAY1e3Vyc95ZWWl+PnPfy7GjRsnfvKTn4iNGzd679u0aZPIzMwU1dXV3m0rV64UU6dOFXl5eeKee+4RjY2NAa3/iU6MZd68eb2+Z7rXCz45FrvdLhYvXiwmTZokcnNzxZ133ilqamqCHocQQqxevVrMmjVLZGdni5kzZ4qvvvrKe9/KlSu9nwXdli5dKi688EJRUFAgFi5cGNQ1hU+OpaioSGRmZva6BvLJsTQ3N4tHHnlETJw4UeTn54sHH3xQNDc3B6TeNLiwrWdb72+Dvb1nW8+23p/Y1vuShOga10VEREREREREIYdD5YmIiIiIiIhCGBN3IiIiIiIiohDGxJ2IiIiIiIgohDFxJyIiIiIiIgphTNyJiIiIiIiIQhgTdyIiIiIiIqIQxsSdiIiIiIiIKIQxcSciIiIiIiIKYUzciYiIiIiIiEIYE3ciIiIiIiKiEKYIdgWIaHApKirCmjVrer1Pp9PhrrvuAgA8/fTTUCh6fsRYrVbcddddSEhI8Gs9iYiI6OywrScKPUzcieiMuFwuPPjgg73et23bNu/16dOno7CwsEeZI0eOwO12+61+RERE9MOwrScKPRwqT0RERERERBTCmLgTERERERERhTAm7kREREREREQhjIk7ERERERERUQhj4k5EREREREQUwpi4ExEREREREYUwLgdHRGdECIHnnnuu1/tUKpV3WZh///vfWLduXY8ybW1tmD9/vj+rSERERD8A23qi0CMJIUSwK0FEREREREREveNQeSIiIiIiIqIQxsSdiIiIiIiIKIQxcSciIiIiIiIKYUzciYiIiIiIiEIYE3ciIiIiIiKiEMbEnYiIiIiIiCiEMXEnIiIiIiIiCmFM3ImIiIiIiIhCGBN3IiIiIiIiohDGxJ2IiIiIiIgohDFxJyIiIiIiIgph/x906bSnqv9x0AAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化损失和准确率曲线\n",
    "plt.figure(figsize=(12, 5))\n",
    "\n",
    "# 损失曲线\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.plot(train_losses, label='训练损失')\n",
    "plt.plot(test_losses, label='测试损失')\n",
    "plt.xlabel('轮次')\n",
    "plt.ylabel('损失值')\n",
    "plt.legend()\n",
    "plt.title('损失曲线')\n",
    "\n",
    "# 准确率曲线\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(train_accuracies, label='训练准确率')\n",
    "plt.plot(test_accuracies, label='测试准确率')\n",
    "plt.xlabel('轮次')\n",
    "plt.ylabel('准确率 (%)')\n",
    "plt.legend()\n",
    "plt.title('准确率曲线')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 预测结果可视化\n",
    "展示测试集中前10个样本的图像、真实标签和预测标签。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-13T06:41:08.492070Z",
     "start_time": "2025-06-13T06:41:07.741247Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30495 (\\N{CJK UNIFIED IDEOGRAPH-771F}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 38598 (\\N{CJK UNIFIED IDEOGRAPH-96C6}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32467 (\\N{CJK UNIFIED IDEOGRAPH-7ED3}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26524 (\\N{CJK UNIFIED IDEOGRAPH-679C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 65288 (\\N{FULLWIDTH LEFT PARENTHESIS}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 21069 (\\N{CJK UNIFIED IDEOGRAPH-524D}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20010 (\\N{CJK UNIFIED IDEOGRAPH-4E2A}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26679 (\\N{CJK UNIFIED IDEOGRAPH-6837}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26412 (\\N{CJK UNIFIED IDEOGRAPH-672C}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\anaconda3\\envs\\Torch_cpu\\lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 65289 (\\N{FULLWIDTH RIGHT PARENTHESIS}) missing from font(s) Arial.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1000x500 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化预测结果\n",
    "model.eval()\n",
    "with torch.no_grad():\n",
    "    images, labels = next(iter(test_loader))\n",
    "    images, labels = images.to(device), labels.to(device)\n",
    "    outputs = model(images)\n",
    "    _, predicted = torch.max(outputs, 1)\n",
    "\n",
    "# 显示前10个样本\n",
    "plt.figure(figsize=(10, 5))\n",
    "for i in range(10):\n",
    "    plt.subplot(2, 5, i + 1)\n",
    "    plt.imshow(images[i][0].cpu(), cmap='gray')\n",
    "    plt.title(f\"真实: {labels[i].item()}\\n预测: {predicted[i].item()}\")\n",
    "    plt.axis('off')\n",
    "plt.suptitle('测试集预测结果（前10个样本）')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实验总结\n",
    "- 成功使用PyTorch构建了两层全连接神经网络，应用于MNIST手写数字识别任务\n",
    "- 通过20个epoch的训练，模型在测试集上的准确率达到95%以上\n",
    "- 可视化了训练和测试的损失及准确率曲线，展示了模型的收敛过程\n",
    "- 可视化了测试集样本的图像、真实标签和预测标签，直观展示了模型的分类效果\n",
    "## 结论\n",
    "两层神经网络在MNIST数据集上表现优异，测试准确率超过95%，证明了其对手写数字识别任务的有效性。损失曲线显示模型快速收敛，无明显过拟合现象。预测结果可视化表明模型能够准确识别大多数手写数字。后续可尝试增加网络层数、使用卷积神经网络（CNN）或调整超参数（如学习率、隐藏层节点数）以进一步提升性能。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
